import { reqDetailList,reqAddOrUpdataCart } from '@/api'

//任何的小仓库:state、mutations、actions、getters 
let state = {
    // 商品详情的数据
    detailInfo: {}
};
let mutations = {
    GETDETAILINFO(state, detailInfo) {
        state.detailInfo = detailInfo;
    }
};
let actions = {
    async getDetailInfo({ commit, dispatch, state }, skuId) {
        let result = await reqDetailList(skuId);
        if (result.code == 200) {
            commit('GETDETAILINFO', result.data)
        }
    },

    // 加入购物车、将来修改商品个数的地方  右侧是载荷对象  两个k两个v
    async addOrUpdateCart({ commit, dispatch, state }, { skuId, skuNum }) {
        let result = await reqAddOrUpdataCart(skuId, skuNum)

        if (result.code == 200) {
            // 如果加入购物车成功  返回成功的promise 
            return 'ok'
        } else {
            // 如果加入购物车失败  返回失败的promise 
            return Promise.reject()
        }

    }
};
// getters为了简化数据、【组件获取数据更方便】
let getters = {
    // 面包屑的数据
    categoryView(state) {
        // s数据为空时会报一个警告的错误
        return state.detailInfo.categoryView || {};
    },
    // 商品信息的数据
    skuInfo(state) {
        return state.detailInfo.skuInfo || {};
    },
    // 商品销售属性列表的数据
    spuSaleAttrList(state) {
        return state.detailInfo.spuSaleAttrList || [];
    }
};


// 对外暴露一个对象
export default {
    state,
    mutations,
    actions,
    getters
}